<template>
  <view class="pos-order-list" ref="container">
    <view class="top-header">
      <view class="search">
        <view class="search-content acea-row row-middle">
          <text class="iconfont icon-sousuo"></text>
          <input
            v-model="where.store_name"
            confirm-type="search"
            placeholder="请输收货人手机号或退款订单号搜索"
            class="input"
            @confirm="handleSearch"
          />
        </view>
      </view>
      <view>
        <scroll-view
          class="nav acea-row"
          scroll-x="true"
          style="white-space: nowrap; display: flex"
          scroll-with-animation
          show-scrollbar="true"
        >
          <view
            class="item"
            :class="where.status == 1 ? 'on' : ''"
            @click="changeStatus(1)"
          >
            待付款
          </view>
          <view
            class="item"
            :class="where.is_verify == 1 ? 'on' : ''"
            @click="changeStatus('verify')"
          >
            待核销
          </view>
          <view
            class="item"
            :class="where.status == 2 ? 'on' : ''"
            @click="changeStatus(2)"
          >
            待发货
          </view>
          <view
            class="item"
            :class="where.status == 3 ? 'on' : ''"
            @click="changeStatus(3)"
          >
            待收货
          </view>
          <view
            class="item"
            :class="where.status == 9 ? 'on' : ''"
            @click="changeStatus(9)"
          >
            租用中
          </view>
          <view
            class="item"
            :class="where.status == 10 ? 'on' : ''"
            @click="changeStatus(10)"
          >
            归还中
          </view>
          <view
            class="item"
            :class="where.status == 4 ? 'on' : ''"
            @click="changeStatus(4)"
          >
            待评价
          </view>
          <view
            class="item"
            :class="where.status == 5 ? 'on' : ''"
            @click="changeStatus(5)"
          >
            已完成
          </view>
          <view
            class="item"
            :class="where.status == 6 ? 'on' : ''"
            @click="changeStatus(6)"
          >
            退款
          </view>
          <view
            class="item"
            :class="where.status == 8 ? 'on' : ''"
            @click="changeStatus(8)"
          >
            已逾期
          </view>
        </scroll-view>
      </view>
    </view>
    <view v-if="where.status == 6" class="list">
      <view class="item" v-for="(item, index) in list" :key="index">
        <view class="order-num acea-row row-middle">
          <text
            v-if="item.order && item.order.activity_type != 0"
            class="activity_type"
          >
            {{
              item.order.activity_type == 1
                ? "秒杀"
                : item.order.activity_type == 2
                ? "预售"
                : item.order.activity_type == 3
                ? "助力"
                : item.order.activity_type == 4
                ? "拼团"
                : item.order.activity_type == 10
                ? "套餐"
                : ""
            }}
          </text>
          退款单号：{{ item.refund_order_sn }}
          <text class="time">申请时间：{{ item.create_time }}</text>
        </view>
        <view
          class="pos-order-goods"
          v-for="(val, key) in item.refundProduct"
          :key="key"
          @click="toRefundDetail(item)"
        >
          <view class="goods acea-row row-between-wrapper">
            <view
              v-if="val.product.cart_info"
              class="picTxt acea-row row-between-wrapper"
            >
              <view class="pictrue">
                <image :src="val.product.cart_info.product.image" />
              </view>
              <view class="text acea-row row-between row-column">
                <view class="info line1 refund-info">
                  {{
                    val.product.cart_info.product &&
                    val.product.cart_info.product.store_name
                  }}
                </view>
                <view class="attr">
                  {{
                    (val.product.cart_info.productAttr &&
                      val.product.cart_info.productAttr.sku) ||
                    "默认"
                  }}
                </view>
                <view class="y-money refund-y-money">
                  退款：￥{{ val.refund_price }}
                </view>
              </view>
            </view>
            <view class="money refund-money">
              <view class="num">x{{ val.refund_num }}</view>
            </view>
          </view>
        </view>
        <view class="item-status">
          <text v-if="item.status == -1" class="iconfont icon-yijujue1"></text>
          <text
            v-if="item.status == 0"
            class="iconfont icon-tuikuanzhong on"
          ></text>
          <text
            v-if="item.status == 1 || item.status == 2"
            class="iconfont icon-tuihuozhong on"
          ></text>
          <text v-if="item.status == 3" class="iconfont icon-yituikuan1"></text>
        </view>
        <view class="operation acea-row row-between-wrapper">
          <view class="more"> </view>
          <view class="acea-row row-middle">
            <view class="bnt" @click="refundModify(item, 1)">订单备注</view>
            <navigator
              class="bnt bnt_color"
              v-if="item.status == 0"
              :url="
                '/pages/admin/orderRefund/index?id=' +
                item.refund_order_id +
                '&merId=' +
                merId
              "
              >立即退款
            </navigator>
            <navigator
              class="bnt"
              v-if="item.status == 2"
              :url="
                '/pages/users/goods_logistics/index?refundId=' +
                item.refund_order_id +
                '&merId=' +
                merId
              "
            >
              查看物流</navigator
            >
            <view
              class="bnt bnt_color"
              v-if="item.status == 2"
              @tap="confirmOrder(item)"
              >确认收货</view
            >
          </view>
        </view>
      </view>
    </view>
    <view v-else class="list">
      <view class="item" v-for="(item, index) in list" :key="index">
        <view class="order-num acea-row row-middle">
          <text v-if="item.activity_type != 0" class="activity_type">
            {{
              item.activity_type == 1
                ? "秒杀"
                : item.activity_type == 2
                ? "预售"
                : item.activity_type == 3
                ? "助力"
                : item.activity_type == 4
                ? "拼团"
                : item.activity_type == 10
                ? "套餐"
                : ""
            }}
          </text>
          订单号：{{ item.order_sn }}
          <text class="time">下单时间：{{ item.create_time }}</text>
          <text
            class="order-status"
            v-if="item.refunding != 0 && where.status != 1"
            >{{
              item.refunding == 1
                ? "退款中"
                : item.refunding == 2
                ? "部分退款"
                : "全部退款"
            }}</text
          >
        </view>
        <view
          class="pos-order-goods"
          v-for="(val, key) in item.orderProduct"
          :key="key"
          @click="toDetail(item)"
        >
          <view class="goods">
            <view class="acea-row row-between-wrapper">
              <view class="picTxt acea-row row-between-wrapper">
                <view class="pictrue">
                  <image :src="val.cart_info.product.image" />
                </view>
                <view class="text acea-row row-between row-column">
                  <view class="info line2">
                    {{ val.cart_info.product.store_name }}
                  </view>
                  <view class="attr">
                    {{
                      (val.cart_info.productAttr &&
                        val.cart_info.productAttr.sku) ||
                      "默认"
                    }}
                  </view>
                </view>
              </view>
              <view class="money">
                <view class="x-money"
                  >￥{{ val.cart_info.productAttr.price }} 元/天</view
                >
                <view class="num">x{{ val.product_num }}</view>
                <!-- <view class="refund-num" v-if="val.product_num-val.refund_num>0">{{val.product_num-val.refund_num}}件{{val.is_refund==1?'退款中' : val.is_refund==2 ? '已退款' : val.is_refund==3?'全部退款':''}}</view> -->
              </view>
            </view>
            <!-- <view v-if="item.order_type == 1" class="cancellate">
								<text class="uncancell">1件已核销</text>
								<text class="uncancell">1件已退款</text>
								<text class="cancelled">1件退款中</text>
							</view> -->
          </view>
        </view>
        <view class="public-total">
          共{{ item.total_num }}件商品，
          <span v-if="where.status <= 1">应</span>
          <span v-else>已</span>
          支付
          <span class="money">￥{{ item.pay_price }}</span> (邮费 ¥{{
            item.pay_postage
          }})
        </view>
        <view class="operation">
          <view class="more" v-if="item.status == 14">
            <text style="color: red">已逾期{{ item.overdue_date }}天</text>
          </view>
          <view class="acea-right row-middle">
            <view
              class="bnt"
              @click="modify(item, 0)"
              v-if="where.status == 1 && item.activity_type != 2"
            >
              一键改价
            </view>
            <view class="bnt" @click="modify(item, 1)">订单备注</view>
            <!-- <view
              class="bnt bnt_color"
              @click="buyOut(item)"
              v-if="item.status == 1"
              >更改买断价格</view
            > -->
            <view
              class="bnt bnt_color"
              @click="compensate(item)"
              v-if="item.status == 13"
              >定损赔偿</view
            >
            <view
              class="bnt bnt_color"
              @click="returnGoods(item)"
              v-if="item.status == 13"
              >确认归还</view
            >

            <view
              class="bnt bnt_color"
              v-if="where.status == 2 && item.order_type == 0"
              @click="toPostage(item)"
              >去发货</view
            >
            <view
              class="bnt bnt_color"
              v-if="
                (where.status == 2 && item.order_type == 1) ||
                where.is_verify == 1
              "
              @click="toDetail(item)"
              >去核销</view
            >
          </view>
        </view>
      </view>
    </view>
    <Loading :loaded="loaded" :loading="loading"></Loading>
    <view v-if="!loading && list.length <= 0" class="nothing">
      <image
        :src="`${domain}/static/images/no_thing.png`"
        mode="widthFix"
      ></image>
      <view class="nothing_text">暂无订单~</view>
    </view>
    <PriceChange
      :change="change"
      :orderInfo="orderInfo"
      v-on:closechange="changeclose($event)"
      v-on:savePrice="savePrice"
      :status="status"
    ></PriceChange>
    <view>
      <view class="priceChange" :class="refundMark === true ? 'on' : ''">
        <view
          class="priceTitle"
          :style="{
            'background-image': `url(${domain}/static/images/pricetitle.jpg)`,
          }"
        >
          订单备注
          <span class="iconfont icon-guanbi" @click="refundMark = false"></span>
        </view>
        <view class="listChange">
          <textarea
            placeholder="请填写备注信息..."
            v-model="refundInfo.mer_mark"
          ></textarea>
        </view>
        <view class="modify" @click="save"> 确认提交 </view>
      </view>
      <view class="mask" @touchmove.prevent v-show="refundMark === true"></view>
    </view>
    <u-popup v-model="returnDialog" mode="center" :border-radius="10">
      <view
        class=""
        style="
          width: 600rpx;
          padding: 20rpx;
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
        "
      >
        <u-form style="width: 100%" :label-width="150">
          <u-form-item label="退款方式">
            <u-radio-group v-model="repayType" placement="row">
              <u-radio name="1">全额退款</u-radio>
              <!-- <u-radio name="2">部分退款</u-radio> -->
            </u-radio-group>
          </u-form-item>
          <block v-if="repayType == 2">
            <u-form-item label="退款金额"
              ><u-input v-model="returnNum" :placeholder="placeholder"
            /></u-form-item>
            <u-form-item label="退款原因"
              ><u-input
                v-model="returnReason"
                placeholder="请输入退款原因"
                type="textarea"
            /></u-form-item>
            <view class="" style="color: red">
              请与买家协商一致后操作部分退款
            </view>
          </block>
        </u-form>
        <view
          @click="submitHandler()"
          style="
            width: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 15rpx;
            background: linear-gradient(90deg, #2291f8 0%, #1cd1dc 100%);
            color: white;
            border-radius: 10rpx;
            margin-top: 30rpx;
          "
        >
          确认归还
        </view>
      </view>
    </u-popup>
    <u-popup v-model="uPopupShow" mode="center" border-radius="14">
      <view class="cha" @click="outis()">×</view>
      <view
        style="
          padding: 50rpx 20rpx;
          width: 650upx;
          min-height: 500upx;
          margin-top: 20rpx;
        "
      >
        <view style="display: flex; justify-content: space-between">
          <view style="" class="searchTitle">赔偿金额</view>
          <input
            v-model="putIsinput"
            confirm-type="search"
            placeholder="请输入赔偿金额"
            class="searchinput"
          />
        </view>
        <view
          style="
            display: flex;
            justify-content: space-between;
            margin-top: 20upx;
          "
        >
          <view style="" class="searchTitle">赔偿原因</view>
          <textarea
            rows="4"
            cols="20"
            v-model="putIstext"
            confirm-type="search"
            placeholder="请输入赔偿原因"
            class="searchtest"
          ></textarea>
        </view>
        <view
          v-if="isLoss.is_loss != 0"
          style="
            display: flex;
            justify-content: space-between;
            margin-top: 20upx;
          "
        >
          <view style="" class="searchTitle">审核状态</view>
          <view v-if="isLoss.is_loss == 1">待审核 </view>
          <view v-if="isLoss.is_loss == 3">已拒绝 </view>
        </view>
        <view
          v-if="isLoss.is_loss != 0 && isLoss.is_loss == 3"
          style="
            display: flex;
            justify-content: space-between;
            margin-top: 20upx;
          "
        >
          <view style="" class="searchTitle">拒绝原因</view>
          <view v-if="isLoss.is_loss == 3">{{ isLoss.loss_refuse }} </view>
        </view>
        <view style="padding: 30rpx 0">赔偿证据</view>
        <view>
          <view>
            <view style="background-color: white; display: flex">
              <view>上传视频</view>
              <view>
                <view
                  @click="uploadVideo"
                  v-if="!videoSrc"
                  style="
                    height: 200rpx;
                    width: 200rpx;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    border-radius: 10rpx;
                    border: 1rpx dashed gray;
                    margin-right: 20rpx;
                    margin-left: 145rpx;
                    margin-top: 20rpx;
                  "
                >
                  点击上传</view
                >
                <video
                  v-else
                  :src="videoSrc"
                  controls
                  style="
                    width: 200rpx;
                    height: 200rpx;
                    margin-right: 20rpx;
                    margin-left: 145rpx;
                  "
                ></video>
              </view>
            </view>
          </view>
        </view>
        <view style="background-color: white; display: flex">
          <view>上传图片</view>
          <view>
            <view
              @click="uploadImage"
              v-if="imgList.length != 1"
              style="
                height: 200rpx;
                width: 200rpx;
                display: flex;
                justify-content: center;
                align-items: center;
                border-radius: 10rpx;
                border: 1rpx dashed gray;
                margin-right: 20rpx;
                margin-left: 145rpx;
                margin-top: 20rpx;
              "
            >
              点击上传</view
            >
            <view
              v-for="(item, index) in imgList"
              :key="index"
              class=""
              style="
                height: 200rpx;
                width: 200rpx;
                display: flex;
                justify-content: center;
                align-items: center;
                margin-top: 20rpx;
                margin-right: 20rpx;
                border-radius: 10rpx;
                margin-left: 145rpx;
                border: 1rpx dashed gray;
              "
            >
              <image
                :src="item"
                mode=""
                style="width: 100%; height: 100%"
              ></image>
            </view>
          </view>
        </view>
      </view>
      <view class="submit" @click="submit()" v-if="loss != 1 || loss != 2"
        >确认</view
      >
    </u-popup>
    <!-- <u-popup v-model="uPopupShow" mode="center" border-radius="14">
      <view class="cha" @click="outis()">×</view>
      <view style="padding: 20rpx; width: 650upx;min-height: 500upx; margin-top: 20rpx">
        <input
          v-model="putIs"
          confirm-type="search"
          placeholder="请输买断价格"
          class="searchinput"
        />
      </view>
      <view class="submit" @click="submit()">确认</view>
    </u-popup> -->
  </view>
</template>

<script>
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者，助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件，未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import {
  returnApi,
  getOrderList,
  getRefundOrderList,
  setAdminOrderPrice,
  setAdminOrderRemark,
  setOfflinePay,
  setOrderRefund,
  refundOrderReceive,
  setRefundMark,
  getButsumbis,
  getButloss,
  getButlossInfo,
} from "@/api/admin";
import Loading from "@/components/Loading/index";
import PriceChange from "@/components/PriceChange/index";
import { isMoney } from "@/utils/validate.js";
import { HTTP_REQUEST_URL } from "@/config/app";
export default {
  name: "AdminOrderList",
  components: {
    Loading,
    PriceChange,
  },
  data() {
    return {
      placeholder: "",
      returnNum: "",
      returnReason: "",
      repayType: "1",
      domain: HTTP_REQUEST_URL,
      current: "",
      change: false,
      refundMark: false,
      types: 1,
      where: {
        page: 1,
        limit: 10,
        status: 1,
        store_name: "",
      },
      list: [],
      loaded: false,
      loading: false,
      refundInfo: {},
      orderInfo: {},
      status: "",
      merId: "",
      returnDialog: false,
      returnObj: {},
      uPopupShow: false,
      putIs: "",
      putIDs: 0,
      videoSrc: "",
      imgList: [],
      met_id: 0,
      putIsinput: "",
      putIstext: "",
      loss: 0,
      isLoss: {},
    };
  },
  watch: {
    "$route.params.types": function (newVal) {
      let that = this;
      if (newVal != undefined) {
        that.where.status = newVal;
        that.init();
      }
    },
    types: function () {
      this.getIndex();
    },
  },
  onLoad(option) {
    if (option.types == "1") {
      this.where.is_verify = "1";
      this.where.status = "";
    } else {
      this.where.status = option.types;
    }
    console.log(option.types);
    this.current = "";
    this.merId = option.merId;
    this.getIndex();
  },
  methods: {
    uploadVideo() {
      var that = this;
      // if (uni.getStorageSync("isUplod") == "1") {
      //   that.onISviod();
      // } else {
      // uni.showModal({
      //   title: "相机权限使用说明:用于拍照、录制视频等场景",
      //   content: "是否允许租兀APP拍摄照片和录制视频",
      //   success: function (res) {
      //     if (res.confirm) {
      //     } else if (res.cancel) {
      //       console.log("用户点击取消");
      //     }
      //   },
      // });
      
      that.onISviod();
      // }
    },
    onISviod() {
      var that = this;
      uni.chooseVideo({
        sourceType: ["camera"],
        success: function (res) {
          uni.uploadFile({
            url: "https://mer.syn.tswm.club/api/upload/video", //仅为示例，非真实的接口地址
            filePath: res.tempFilePath,
            name: "file",
            success: (uploadFileRes) => {
              that.videoSrc = JSON.parse(uploadFileRes.data).data.path;
              console.log(that.videoSrc);
              console.log(that.imgList.length);
              if (that.isWeixin == true) {
                if (that.videoSrc == "" || that.imgList.length == 0) {
                  that.isWeixin = false;
                } else {
                  that.isWeixin = true;
                }
              }
            },
            fail(err) {
              console.log(err);
            },
          });
        },
      });
    },
    uploadImage() {
      var that = this;
      // if (uni.getStorageSync("isUplod") == "1") {
      //   that.onISImg();
      // } else {
      uni.showModal({
        title: "相机权限使用说明:用于拍照、录制视频等场景",
        content: "是否允许租兀APP拍摄照片和录制视频",
        success: function (res) {
          if (res.confirm) {
            that.onISImg();
          } else if (res.cancel) {
            console.log("用户点击取消");
          }
        },
      });
      // }
    },
    onISImg() {
      var that = this;
      uni.chooseImage({
        count: 1, //默认9
        sizeType: ["original", "compressed"], //可以指定是原图还是压缩图，默认二者都有
        sourceType: ["album", "camera"], //从相册选择
        success: function (res) {
          console.log(res);
          uni.uploadFile({
            url: "https://mer.syn.tswm.club/api/upload/image/file", //仅为示例，非真实的接口地址
            filePath: res.tempFilePaths[0],
            name: "file",
            success: (uploadFileRes) => {
              let result = JSON.parse(uploadFileRes.data).data.path;
              that.imgList.push(result);
              if (that.isWeixin == false) {
                if (that.videoSrc == "" || that.imgList.length == 0) {
                  that.isWeixin = true;
                } else {
                  that.isWeixin = true;
                }
              }
            },
            fail(err) {
              console.log(err);
            },
          });
        },
      });
    },

    submitHandler() {
      var that = this;
      const params = {
        order_id: that.returnObj.order_id,
        back_status: that.repayType,
        back_deposit: that.repayType == 1 ? "" : that.returnNum,
        back_mark: that.repayType == 1 ? "" : that.returnReason,
      };
      returnApi(params, that.merId).then(
        (res) => {
          that.$util.Tips({
            title: "退款成功",
          });
          that.returnDialog = false;
          that.getIndex();
        },
        (err) => {
          that.$util.Tips({
            title: err,
          });
          that.returnDialog = false;
        }
      );
    },
    returnGoods(e) {
      this.returnObj = e;
      this.placeholder = `您的可退金额为${e.deposit}`;
      this.returnDialog = true;
    },
    compensate(e) {
      var that = this;
      if (uni.getStorageSync("isUplod") == "1") {
        console.log(e.order_id);
        that.met_id = e.order_id;
        that.uPopupShow = true;
        that.putIsinput = "";
        that.putIstext = "";
        that.videoSrc = "";
        that.imgList = [];
        getButlossInfo(that.merId, that.met_id).then((res) => {
          console.log(res);
          that.putIsinput = res.data.loss_price;
          that.putIstext = res.data.loss_mark;
          that.videoSrc = res.data.loss_video;
          that.loss = res.data.is_loss;
          that.isLoss = res.data;
          console.log(that.isLoss.is_loss);
          that.imgList = [];
          if (res.data.loss_img == null || res.data.loss_imgc == "") {
            that.imgList = [];
          } else {
            that.imgList.push(res.data.loss_img);
          }
        });
      } else {
        uni.showModal({
          title: "相机权限使用说明:用于拍照、录制视频等场景",
        content: "是否允许租兀APP拍摄照片和录制视频",
          success: function (res) {
            if (res.confirm) {
              uni.setStorageSync("isUplod", "1");
              console.log(e.order_id);
              that.met_id = e.order_id;
              that.uPopupShow = true;
              that.putIsinput = "";
              that.putIstext = "";
              that.videoSrc = "";
              that.imgList = [];
              getButlossInfo(that.merId, that.met_id).then((res) => {
                console.log(res);
                that.putIsinput = res.data.loss_price;
                that.putIstext = res.data.loss_mark;
                that.videoSrc = res.data.loss_video;
                that.loss = res.data.is_loss;
                that.imgList = [];
                if (res.data.loss_img == null || res.data.loss_imgc == "") {
                  that.imgList = [];
                } else {
                  that.imgList.push(res.data.loss_img);
                }
              });
            } else if (res.cancel) {
              console.log("用户点击取消");
            }
          },
        });
      }
    },
    outis() {
      this.uPopupShow = false;
      this.putIsinput = "";
      this.putIstext = "";
      this.videoSrc = "";
      this.imgList = [];
    },
    submit() {
      if (this.putIsinput == "" || this.putIsinput == null) {
        return this.$util.Tips({
          title: "请输入价格",
        });
      } else if (this.putIstext == "" || this.putIstext == null) {
        return this.$util.Tips({
          title: "请输入备注",
        });
      } else if (this.videoSrc == "" || this.videoSrc == null) {
        return this.$util.Tips({
          title: "请上传视频",
        });
      } else if (this.imgList.length == 0) {
        return this.$util.Tips({
          title: "请上传图片",
        });
      }
      console.log(this.putIsinput);
      console.log(this.putIstext);
      console.log(this.met_id);
      console.log(this.videoSrc);
      console.log(this.imgList.join(","));
      let that = this;
      const params = {
        loss_price: that.putIsinput,
        loss_mark: that.putIstext,
        loss_img: that.imgList.join(","),
        loss_video: that.videoSrc,
      };
      console.log(that.merId);
      getButloss(that.merId, that.met_id, params).then((res) => {
        that.$util.Tips({
          title: "创建成功",
        });
        console.log(res);
        that.uPopupShow = false;
      });
    },
    buyOut(item) {
      this.uPopupShow = true;
      console.log(item.orderProduct[0].order_product_id);
      this.putIDs = item.orderProduct[0].order_product_id;
    },
    handleSearch() {
      this.loaded = false;
      this.where.page = 1;
      this.list = [];
      this.getIndex();
    },
    // 获取数据
    getIndex() {
      let that = this;
      if (that.loading || that.loaded) return;
      that.loading = true;
      if (that.where.status == 6) {
        getRefundOrderList(that.where, that.merId).then(
          (res) => {
            that.loading = false;
            that.loaded = res.data.list.length < that.where.limit;
            that.list.push.apply(that.list, res.data.list);
            that.where.page = that.where.page + 1;
          },
          (err) => {
            that.$util.Tips({
              title: err,
            });
          }
        );
      } else {
        getOrderList(that.where, that.merId).then(
          (res) => {
            that.loading = false;
            that.loaded = res.data.list.length < that.where.limit;
            that.list.push.apply(that.list, res.data.list);
            that.where.page = that.where.page + 1;
          },
          (err) => {
            that.$util.Tips({
              title: err,
            });
          }
        );
      }
    },
    // 初始化
    init: function () {
      this.list = [];
      this.where.page = 1;
      this.loaded = false;
      this.loading = false;
      this.getIndex();
      this.current = "";
    },
    // 导航切换
    changeStatus(val) {
      if (val != "verify") {
        if (this.where.status != val) {
          this.where.status = val;
          delete this.where.is_verify;
          this.init();
        }
      } else {
        this.where.is_verify = 1;
        delete this.where.status;
        this.init();
      }
    },
    // 商品操作
    modify: function (item, status) {
      let temp = status.toString();
      this.change = true;
      this.orderInfo = item;
      this.status = temp;
    },
    refundModify(item) {
      this.refundInfo = item;
      this.refundMark = true;
    },
    // 退款单备注
    save(item) {
      let that = this;
      if (!that.refundInfo.mer_mark) {
        return this.$util.Tips({
          title: "请输入备注",
        });
      }
      setRefundMark(that.merId, that.refundInfo.refund_order_id, {
        mer_mark: that.refundInfo.mer_mark,
      }).then(
        (res) => {
          that.refundMark = false;
          this.$util.Tips({
            title: res.message,
            icon: "success",
          });
        },
        (err) => {
          that.refundMark = false;
          that.$util.Tips({
            title: err,
          });
        }
      );
    },
    changeclose: function (msg) {
      this.change = msg;
    },
    // 确认收货
    confirmOrder: function (item) {
      let that = this;
      uni.showModal({
        title: "确认收货",
        content: "为保障权益，请收到货确认无误后，再确认收货",
        success: function (res) {
          if (res.confirm) {
            refundOrderReceive(that.merId, item.refund_order_id)
              .then((res) => {
                return that.$util.Tips(
                  {
                    title: "操作成功",
                    icon: "success",
                  },
                  function () {
                    item.status = 3;
                  }
                );
              })
              .catch((err) => {
                return that.$util.Tips({
                  title: err,
                });
              });
          }
        },
      });
    },
    toPostage(item) {
      let that = this;
      if (item.refunding != 0) {
        uni.showModal({
          title: "标题",
          content: "该订单有售后申请，请确认已处理！",
          success: function (res) {
            if (res.confirm) {
              uni.navigateTo({
                url: `/pages/admin/delivery/index?id=${item.order_id}&merId=${that.merId}`,
              });
            }
          },
        });
      } else {
        uni.navigateTo({
          url: `/pages/admin/delivery/index?id=${item.order_id}&merId=${that.merId}`,
        });
      }
    },
    async savePrice(opt) {
      let that = this,
        data = {},
        price = opt.orderInfo.pay_postage,
        refund_price = opt.refund_price,
        refund_status = that.orderInfo.refund_status,
        remark = opt.remark;
      let parmas = {
        pay_postage: opt.orderInfo.pay_postage,
        coupon_price: opt.orderInfo.coupon_price,
        total_price: Number(opt.orderInfo.total_price),
      };
      let id = that.orderInfo.order_id;
      if (that.status == 0) {
        if (!isMoney(opt.orderInfo.pay_postage || opt.orderInfo.total_price)) {
          return that.$util.Tips({
            title: "请输入正确的金额",
          });
        }
        data.pay_price = price;
        setAdminOrderPrice(this.merId, id, parmas).then(
          function () {
            that.change = false;
            that.$util.Tips({
              title: "改价成功",
              icon: "success",
            });
            that.init();
          },
          function (res) {
            that.change = false;
            that.$util.Tips({
              title: res,
              icon: "none",
            });
          }
        );
      } else {
        if (!remark) {
          return this.$util.Tips({
            title: "请输入备注",
          });
        }
        setAdminOrderRemark(this.merId, id, {
          remark: remark,
        }).then(
          (res) => {
            that.change = false;
            this.$util.Tips({
              title: res.message,
              icon: "success",
            });
            that.init();
          },
          (err) => {
            that.change = false;
            that.$util.Tips({
              title: err,
            });
          }
        );
      }
    },
    toDetail(item) {
      uni.navigateTo({
        url: `/pages/admin/orderDetail/index?id=${item.order_id}&mer_id=${item.mer_id}`,
      });
    },
    toRefundDetail(item) {
      uni.navigateTo({
        url: `/pages/admin/refundDetail/index?id=${item.refund_order_id}&mer_id=${item.mer_id}`,
      });
    },
  },
  onReachBottom() {
    this.getIndex();
  },
};
</script>

<style lang="scss" scoped>
.pos-order-list .top-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  background-color: #fff;
}

.pos-order-list .nav {
  // width: 100%;
  height: 96upx;
  font-size: 30upx;
  color: #282828;
  width: 690rpx;
  margin: 0 auto;
}

.pos-order-list .nav .item {
  display: inline-block;
  text-align: center;
  color: #333333;
  max-width: 160rpx;
  margin-right: 50rpx;
  line-height: 96upx;

  &:last-child {
    margin-right: 0;
  }
}

.pos-order-list .nav .item.on {
  color: #ff6b00;
}

.pos-order-list .list {
  margin-top: 210upx;
}

.pos-order-list .list .item {
  background-color: #fff;
  width: 100%;
  position: relative;
}

.pos-order-list .list .item .item-status {
  position: absolute;
  top: 14rpx;
  right: 20rpx;

  .iconfont {
    font-size: 98rpx;
    color: #cccccc;

    &.on {
      color: #ffe3bc;
    }
  }
}

.pos-order-list .list .item ~ .item {
  margin-top: 24upx;
}

.pos-order-list .list .activity_type {
  display: inline-block;
  color: #e93323;
  font-size: 20rpx;
  text-align: center;
  border-radius: 5rpx;
  padding: 0 4rpx;
  line-height: 28rpx;
  margin-right: 8rpx;
  border: 1rpx solid #e93323;
}

.pos-order-list .list .item .order-num {
  height: 124upx;
  border-bottom: 1px solid #eee;
  font-size: 30upx;
  font-weight: bold;
  color: #282828;
  padding: 0 30upx;
  position: relative;
}

.pos-order-list .list .item .order-status {
  color: #ff9600;
  position: absolute;
  top: 24rpx;
  right: 20rpx;
  text-align: right;
  width: 160rpx;
  font-weight: normal;
  font-size: 26rpx;
}

.pos-order-list .list .item .order-num .time {
  font-size: 26upx;
  font-weight: normal;
  color: #999;
  margin-top: -40upx;
}

.pos-order-list .list .item .operation {
  height: 140rpx;
  padding: 20upx 30upx 20upx 0;
  margin: 30upx 0 0 30upx;
  border-top: 1rpx solid #eeeeee;
}

.pos-order-list .list .item .operation .more {
  position: relative;
}

.pos-order-list .list .item .operation .icon-gengduo {
  font-size: 50upx;
  color: #aaa;
}

.pos-order-list .list .item .operation .order .arrow {
  width: 0;
  height: 0;
  border-left: 11upx solid transparent;
  border-right: 11upx solid transparent;
  border-top: 20upx solid #e5e5e5;
  position: absolute;
  left: 15upx;
  bottom: -18upx;
}

.pos-order-list .list .item .operation .order .arrow:before {
  content: "";
  width: 0;
  height: 0;
  border-left: 7upx solid transparent;
  border-right: 7upx solid transparent;
  border-top: 20upx solid #fff;
  position: absolute;
  left: -7upx;
  bottom: 0;
}

.pos-order-list .list .item .operation .order {
  width: 200upx;
  background-color: #fff;
  border: 1px solid #eee;
  border-radius: 10upx;
  position: absolute;
  top: -100upx;
  z-index: 9;
}

.pos-order-list .list .item .operation .order .items {
  height: 77upx;
  line-height: 77upx;
  text-align: center;
}

.pos-order-list .list .item .operation .order .items ~ .items {
  border-top: 1px solid #f5f5f5;
}

.pos-order-list .list .item .operation .bnt {
  font-size: 28upx;
  color: #5c5c5c;
  // width: 170upx;
  padding: 0 15upx;
  height: 60upx;
  border-radius: 30upx;
  border: 1px solid #bbb;
  text-align: center;
  line-height: 60upx;
}

.pos-order-list .list .item .operation .bnt_color {
  border: none;
  color: #fff;
  background: linear-gradient(90deg, #ff6b00 0%, #ff6b00 100%);
}

.pos-order-list .list .item .operation .bnt ~ .bnt {
  margin-left: 14upx;
}

.pos-order-goods {
  padding: 0 30upx;
  background-color: #fff;
}

.pos-order-goods .goods {
  padding-top: 20rpx;
  overflow: hidden;
}

.pos-order-goods .goods ~ .goods {
  border-top: 1px dashed #e5e5e5;
}

.pos-order-goods .cancellate {
  font-size: 24rpx;
  float: right;
  margin-top: 10rpx;

  text {
    margin-left: 26rpx;
  }
}

.pos-order-goods .cancelled {
  color: #ff9600;
}

.pos-order-goods .goods .uncancell {
  color: #999999;
}

.pos-order-goods .goods .picTxt {
  width: 415upx;
  align-items: flex-start;
}

.pos-order-goods .goods .picTxt .pictrue {
  width: 130upx;
  height: 130upx;
}

.pos-order-goods .goods .picTxt .pictrue image {
  width: 100%;
  height: 100%;
  border-radius: 6upx;
}

.pos-order-goods .goods .picTxt .text {
  flex-direction: column;
  width: 265upx;
}

.pos-order-goods .goods .picTxt .text .info {
  font-size: 28rpx;
  color: #333333;

  &.refund-info {
    width: 460upx;
  }
}

.refund-y-money {
  margin-top: 20rpx;
  font-size: 26rpx;
}

.pos-order-goods .goods .picTxt .text .attr {
  margin-top: 20rpx;
  font-size: 24rpx;
  color: #999;
}

.pos-order-goods .goods .money {
  // width: 164rpx;
  text-align: right;
  font-size: 28rpx;

  &.refund-money {
    width: auto;
    position: relative;
    top: -50rpx;

    .num {
      color: #999999;
    }
  }

  .refund-num {
    font-size: 24rpx;
    color: #282828;
  }
}

.pos-order-goods .goods .money .x-money {
  color: #282828;
}

.pos-order-goods .goods .money .num {
  color: #ff9600;
  margin: 5upx 0;
}

.pos-order-goods .goods .money .y-money {
  color: #999;
  text-decoration: line-through;
}

.pos-order-goods .goods .refund_num {
  display: inline-block;
  margin-left: 10rpx;
}

.public-total {
  font-size: 28upx;
  color: #282828;
  height: 92upx;
  line-height: 92upx;
  text-align: right;
  padding: 0 30upx;
  background-color: #fff;
}

.public-total .money {
  color: #ff4c3c;
}

.nothing {
  margin-top: 200rpx;
  text-align: center;
}

.nothing_text {
  margin-top: 20rpx;
  color: #999999;
}

.priceChange {
  position: fixed;
  width: 580upx;
  background-color: #fff;
  border-radius: 10upx;
  top: 50%;
  left: 50%;
  margin-left: -290upx;
  margin-top: -335upx;
  z-index: 666;
  transition: all 0.3s ease-in-out 0s;
  transform: scale(0);
  opacity: 0;
}

.priceChange.on {
  opacity: 1;
  transform: scale(1);
}

.priceChange .priceTitle {
  background-repeat: no-repeat;
  background-size: 100% 100%;
  width: 100%;
  height: 160upx;
  border-radius: 10upx 10upx 0 0;
  text-align: center;
  font-size: 40upx;
  color: #fff;
  line-height: 160upx;
  position: relative;
}

.priceChange .priceTitle .iconfont {
  position: absolute;
  font-size: 40upx;
  right: 26upx;
  top: 23upx;
  width: 40upx;
  height: 40upx;
  line-height: 40upx;
}

.priceChange .listChange {
  padding: 0 40upx;
}

.priceChange .listChange textarea {
  box-sizing: border-box;
}

.priceChange .listChange .item {
  height: 103upx;
  border-bottom: 1px solid #e3e3e3;
  font-size: 32upx;
  color: #333;
}

.priceChange .modify {
  font-size: 32upx;
  color: #fff;
  width: 490upx;
  height: 90upx;
  text-align: center;
  line-height: 90upx;
  border-radius: 45upx;
  background-color: #ff6b00;
  margin: 53upx auto;
}

.priceChange .listChange textarea {
  border: 1px solid #eee;
  width: 100%;
  height: 200upx;
  margin-top: 50upx;
  border-radius: 10upx;
  color: #333;
  padding: 20upx;
}

.search {
  padding: 17rpx 30rpx;

  .search-content {
    width: 100%;
    height: 60rpx;
    padding: 0 30rpx;
    border-radius: 30rpx;
    background-color: #f5f5f5;
    font-size: 26rpx;
  }

  .iconfont {
    margin-right: 10rpx;
    font-size: 26rpx;
    color: #999999;
  }

  .input-placeholder {
    font-size: 26rpx;
    color: #999999;
  }

  .input {
    flex: 1;
  }
}
.searchTitle {
  width: 170upx;
  height: 60upx;
  line-height: 60upx;
}
.searchinput {
  width: 360upx;
  height: 60upx;
  padding: 10rpx 20rpx;
  border: 1rpx #333 solid;
  border-radius: 10upx;
}
.searchtest {
  border-radius: 10upx;
  padding: 10rpx 20rpx;
  border: 1rpx #333 solid;
  height: 150rpx;
  min-height: 120upx;
  width: 365upx;
}
.cha {
  font-size: 50rpx;
  position: absolute;
  right: 4rpx;
  top: -16rpx;
}
.submit {
  font-size: 32upx;
  color: #fff;
  width: 550upx;
  height: 60upx;
  text-align: center;
  line-height: 60upx;
  border-radius: 45upx;
  background-color: #ff6b00;
  margin: 53upx auto;
}
.acea-right {
  display: flex;
  float: right;
}
</style>